<?php
class ContribuyentesController extends AppController {

	var $name = 'Contribuyentes';
    var $uses = array('Contribuyente','Impuesto','Pago');
	function index() {
		$this->Contribuyente->recursive = 0;
		$this->set('contribuyentes', $this->paginate());
	}

    function buscar(){
        if ($this->data){
            //print_r($this->data);
            $condiciones = array('Contribuyente.rif_cedula  '=> $this->data['Contribuyente']['rif_cedula'] );
            $contri = $this->Contribuyente->find('all',array('conditions' => $condiciones));
            
            if ($contri){
                //print_r($contri);
                $this->Session->setFlash(__('Contribuyente: ' . $contri['0']['Contribuyente']['nombre'], true));
                $this->redirect(array('controller' =>'contribuyentes','action' => 'pago/' . $contri['0']['Contribuyente']['id'],));
                }else{
                    $this->Session->setFlash(__('Contribuyente no valido, intente nuevamente', true));
                    $this->redirect(array('controller' =>'contribuyentes','action' => 'buscar'));
                }      
            }
        
        
    }
	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid contribuyente', true));
			$this->redirect(array('action' => 'index'));
		}
		/*$this->Contribuyente->Impuesto->find('all');
        $this->set(compact('impuestos'));*/
        $this->set('contribuyente', $this->Contribuyente->read(null, $id));
	}
	function pago($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid contribuyente', true));
			//$this->redirect(array('action' => 'index'));
		}
		/*$this->Contribuyente->Impuesto->find('all');
        $this->set(compact('impuestos'));*/
        $this->set('contribuyente', $this->Contribuyente->read(null, $id));
	}
	function add() {
		if (!empty($this->data)) {
			$this->Contribuyente->create();
			if ($this->Contribuyente->save($this->data)) {
				$this->Session->setFlash(__('El contribuyente ha sido creado', true));
                //print_r($this->data);
				
                $id = $this->Contribuyente->query('select id from contribuyentes order by created desc limit 1');
                //print_r($id['0']['contribuyentes']['id']);
                $impus = $this->data['Impuesto']['Impuesto'];
                foreach( $impus as $impu)
                {
                      
                                //echo 'No hay<br>';
                                $this->Pago->query('insert into pagos (contribuyente_id, impuesto_id,created,modified) values('.$id['0']['contribuyentes']['id'].','.$impu['Impuesto'].',NOW(),NOW())');
                                /*$this->Pago->Create();
                                $this->Pago->['contribuyente_id'] = $id;
                                $this->Pago->['impuesto_id'] = $impu['Impuesto'];
                                if($this->Pago->save($this->data))
                                {
                                        echo "creado";
                                        
                                }*/
                        }
                    $this->redirect(array('action' => 'index'));
                			} else {
				$this->Session->setFlash(__('El contribuyente no ha sido creado. Intente de nuevo.', true));
			}
		}
		$tipos = $this->Contribuyente->Tipo->find('list');
        $impuestos = $this->Impuesto->find('list');
		$this->set(compact('tipos','impuestos'));
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid contribuyente', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->Contribuyente->save($this->data)) {
				$this->Session->setFlash(__('The contribuyente has been saved', true));
                //print_r($this->data);
                //echo "Hola:$id<br>";
                $impus = $this->data['Impuesto']['Impuesto'];
                foreach( $impus as $impu)
                {
                        //echo $impu['Impuesto'] . '<br>';
                        $condiciones = array('Pago.contribuyente_id  '=> $id, 'Pago.impuesto_id' => $impu['Impuesto'] );
                        if ($this->Pago->find('all',array('conditions' => $condiciones)))
                        {
                                //echo "Hay<br>";
                                
                        }else
                        {
                                //echo 'No hay<br>';
                                $this->Pago->query('insert into pagos (contribuyente_id, impuesto_id,created,modified) values('.$id.','.$impu['Impuesto'].',NOW(),NOW())');
                                /*$this->Pago->Create();
                                $this->Pago->['contribuyente_id'] = $id;
                                $this->Pago->['impuesto_id'] = $impu['Impuesto'];
                                if($this->Pago->save($this->data))
                                {
                                        echo "creado";
                                        
                                }*/
                        }
                        
                }
                $this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The contribuyente could not be saved. Please, try again.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Contribuyente->read(null, $id);
		}
		$tipos = $this->Contribuyente->Tipo->find('list');
        $impuestos = $this->Contribuyente->Impuesto->find('list');
		$this->set(compact('tipos','impuestos'));
	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for contribuyente', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Contribuyente->delete($id)) {
			$this->Session->setFlash(__('Contribuyente deleted', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Contribuyente was not deleted', true));
		$this->redirect(array('action' => 'index'));
	}
	
	function beforeFilter() {
		//$this->Acl->allow($aroAlias, $acoAlias);
   		 parent::beforeFilter();
    		    	
			$this->Auth->allow(array('*'));

    }
}
